package com.example.novel.controller;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.example.novel.domain.Book;
import com.example.novel.domain.BookVo;
import com.example.novel.domain.Chapter;
import com.example.novel.domain.Result;
import com.example.novel.service.BookService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import java.io.Serializable;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;

@Controller
@RequestMapping("/book")
public class BookController {

    @Resource
    private BookService bookService;

    // 查询所有图书
    @ResponseBody
    @RequestMapping("/getBookList")
    public Result getBookList() {
        Result result = new Result();
        try {
            List<Book> books = bookService.list();
            result.setCode(200);
            result.setMsg("查询成功");
            result.setData(books);
        } catch (Exception e) {
            result.setCode(500);
            result.setMsg("查询失败: " + e.getMessage());
        }
        return result;
    }


}

















//    @ResponseBody
//    @RequestMapping("/updateBook")
//    public Result updateBook(@RequestBody BookVo bookVo) {
//        Book book = new Book();
//        book.setId(bookVo.getId());
//        book.setTitle(bookVo.getTitle());
//        book.setDescription(bookVo.getDescription());
//        book.setCoverImage(bookVo.getCoverImage());
//        List<Chapter> chapters = bookVo.getChapters();
//        StringBuilder chaptersBuilder = new StringBuilder("[");
//        int chapterIndex = 1;  // 章节编号从1开始
//
//        for (int i = 0; i < chapters.size(); i++) {
//            Chapter chapter = chapters.get(i);
//            chaptersBuilder
//                    .append("{")
//                    .append("\"chapter\":").append(chapterIndex).append(",")
//                    .append("\"title\":\"").append(chapter.getTitle()).append("\",")
//                    .append("\"content\":\"").append(chapter.getContent().replace("\"", "\\\""))  // 处理内容中的双引号
//                    .append("\"}");
//
//            if (i != chapters.size() - 1) {
//                chaptersBuilder.append(",");
//            }
//            chapterIndex++;
//        }
//
//        chaptersBuilder.append("]");
//        String chaptersJson = chaptersBuilder.toString();
//        book.setChapters(chaptersJson);
//        int length = bookVo.getTags().length;
//        String[] tagArray = bookVo.getTags();  // 假设 tags 是 String[]
//        StringBuilder tagsBuilder = new StringBuilder("[");
//        for (int i = 0; i < tagArray.length; i++) {
//            tagsBuilder.append("\"").append(tagArray[i]).append("\"");
//            if (i != tagArray.length - 1) {
//                tagsBuilder.append(",");  // JSON 格式不需要空格
//            }
//        }
//        tagsBuilder.append("]");
//        String tags = tagsBuilder.toString();
//        book.setTags(tags);
//        book.setReadCount(bookVo.getReadCount());
//        book.setAuthor(bookVo.getAuthor());
//        book.setAuthorId(bookVo.getAuthorId());
//        book.setPublisher(bookVo.getPublisher());
//        book.setPublishDate(bookVo.getPublishDate());
//        book.setRating(bookVo.getRating());
//        System.out.println(book);
//        bookService.updateById(book);
//        Result result = new Result();
//        return result;
//    }
//
//    @ResponseBody
//    @RequestMapping("/addBook")//添加图书
//    public Result addBook(@RequestBody BookVo bookVo) {
//        Book book = new Book();
//        //随机三位数
//        int randomNumber = (int) (Math.random() * 900) + 100;
//        book.setId(randomNumber);
//        book.setTitle(bookVo.getTitle());
//        book.setDescription(bookVo.getDescription());
//        book.setCoverImage(bookVo.getCoverImage());
//        List<Chapter> chapters = bookVo.getChapters();
//        StringBuilder chaptersBuilder = new StringBuilder("[");
//        int chapterIndex = 1;  // 章节编号从1开始
//
//        for (int i = 0; i < chapters.size(); i++) {
//            Chapter chapter = chapters.get(i);
//            chaptersBuilder
//                    .append("{")
//                    .append("\"chapter\":").append(chapterIndex).append(",")
//                    .append("\"title\":\"").append(chapter.getTitle()).append("\",")
//                    .append("\"content\":\"").append(chapter.getContent().replace("\"", "\\\""))  // 处理内容中的双引号
//                    .append("\"}");
//
//            if (i != chapters.size() - 1) {
//                chaptersBuilder.append(",");
//            }
//            chapterIndex++;
//        }
//
//        chaptersBuilder.append("]");
//        String chaptersJson = chaptersBuilder.toString();
//        book.setChapters(chaptersJson);
//        int length = bookVo.getTags().length;
//        String[] tagArray = bookVo.getTags();  // 假设 tags 是 String[]
//        StringBuilder tagsBuilder = new StringBuilder("[");
//        for (int i = 0; i < tagArray.length; i++) {
//            tagsBuilder.append("\"").append(tagArray[i]).append("\"");
//            if (i != tagArray.length - 1) {
//                tagsBuilder.append(",");  // JSON 格式不需要空格
//            }
//        }
//        tagsBuilder.append("]");
//        String tags = tagsBuilder.toString();
//        book.setTags(tags);
//        book.setReadCount(bookVo.getReadCount());
//        book.setAuthor(bookVo.getAuthor());
//        book.setAuthorId("1");
//        book.setPublisher(bookVo.getPublisher());
//        book.setPublishDate(bookVo.getPublishDate());
//        book.setRating(bookVo.getRating());//
//        System.out.println(book);
//        bookService.save(book);
//        Result result = new Result();
//        return result;
//    }
////这是发布的删书方法
//    @ResponseBody
//    @RequestMapping("/deleteBookById/{id}")
//    public Result deleteBookById(@PathVariable String id) {
//        Result result = new Result();
//        try {
//            bookService.removeById(id);
//            result.setCode(200);
//            result.setMsg("删除成功");
//        }
//        catch (Exception e) {
//            result.setCode(500);
//            result.setMsg("删除失败: " + e.getMessage());
//        }
//        return result;
//    }